<?php
/**
 * Класс хранения настроек сервера
 * @author Alexander NeonXP Kiryukhin
 * @copyright 2011 Alexander NeonXP Kiryukhin
 * @license GPLv2
 */
class config {
    protected static $instance;
    private $arConfig = array();
    private function __clone() { }

	public static function getInstance() {
		return (self::$instance === null) ?
		self::$instance = new self() :
		self::$instance;
	}
        /**
         * Все конфиги хранятся в директории 'config' в виде JSON файлов
         */
        public function __construct() {
            $arConfigs = glob('./config/*.json');
            foreach ($arConfigs as $sConfigFile) {
                log::raise('Loading config '.$sConfigFile);
                $sConfig = file_get_contents($sConfigFile);
                $this->arConfig = array_merge($this->arConfig,  json_decode($sConfig,true));
            }
            log::raise('Config files loaded...');
        }
        /**
         * Возращает значение конфигурации по ключу
         * @param string $sKey
         * @return mixed $sValue
         */
        public function get($sKey) {
            return $this->arConfig[$sKey];
        }
        /**
         * Устанавливает значение ключа конфигурации
         * @param string $sKey
         * @param string $sValue
         * @return config
         */
        public function set($sKey,$sValue) {
            $this->arConfig[$sKey] = $sValue;
            return $this;
        }
}

